#include <stdio.h>
#include <sys/mman.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>


int main()
{
    // 打开液晶屏文件
    int lcd = open("/dev/fb0", O_RDWR);
    int color[3] = {0xFF,0xFF00,0xFF0000};
    int index = 0;

    // 给LCD设备映射一块内存（或称显存）
    char *p = mmap(NULL, 800*480*4, PROT_WRITE,
                   MAP_SHARED, lcd, 0);

    // 通过映射内存，将LCD屏幕的每一个像素点涂成红色
        for (int y = 0; y < 480; y++)
        {
            for (int x = 0; x < 800; x++)
            {
                if ((x>400&&x<600)&&(y>240&&y<340))
                {
                    memcpy(p + x*4 + 800*y*4,&color[1],4);
                }
                else
                    memcpy(p + x*4 + 800*y*4,&color[0],4);
            }
        }


    // 解除映射
    munmap(p, 800*480*4);
    close(lcd);
    return 0;
}